@不喜丶不悲
2年前 提问
1个回答

内存模糊测试有哪些优点

在下炳尚
2年前

内存模糊测试有下列优点:

  • 快速:这种方法不仅不需要网络带宽,甚至,在测试过程中都不需要执行从网络上接收数据包到实际解析数据包之间的代码。由此提升了测试性能。

  • 捷径:如果一个协议使用了定制的加密或是压缩算法,或是程序内到处都是数据校验代码,在这种情况下,内存模糊测试器能够在解压,解密或是数据校验完成后的某个时间点创建一个快照,这样就避免了花费时间创建一个能够处理所有这些加密,压缩或是数据校验的模糊测试器,能够大大减少工作量。

  • 效率高:内存模糊测试是一种自动化的测试方式,测试用例是由测试工具自动产生的,其测试效率高,且不依赖于测试人员的经验。

  • 与其他测试技术联合使用:目前普遍使用的测试方式,大部分集中在功能测试,并结合一些非功能测试,如压力测试。但这些测试都是正面测试,很少有工具专注于负面测试(即验证软件不执行其不应该完成的工作)。而模糊测试的出现,正弥补了其他测试方法的不足,它专注于负面测试,与其他测试技术联合使用可全面保障软件的安全性和稳定性。

  • 能够发现未知漏洞:目前市面上的自动化测试工具更注重已知漏洞的发现,忽视了未知漏洞的危害,模糊测试工具正是发现未知漏洞的利器。

  • 效果好:模糊测试变异的测试用例,是有一定规则的随机,相较于随机自动化测试工具,模糊测试的测试用例能达到更好的效果。

内存模糊测试的缺点如下:

  • 假相:内存模糊测试是直接将数据注入进程的地址空间,因此有可能被注入的数据根本不可能通过从外部源输入的数据来产生。

  • 可重现性:虽然一个异常可能预示着一个可被利用的漏洞,但即通过内存模糊测试发现了这样的异常,测试者仍然需要从外部输入找到重现这个异常的外部数据,而找到对应的外部数据可能非常耗时。

  • 复杂性:内存模糊测试方法的实现非常复杂。